In the traditional control paradigm, the occurrence of an event triggers a control action. The event may be, for example, a signal whose magnitude exceeds a predefined level, or the lapse of a predefined time interval. The control action can be almost anything that comprises an appropriate response to the event. For systems that include a very defined set of events and corresponding responses, a hardwired electromechanical control may be entirely adequate to accomplish the desired task. As the complexity of the controlled system increases, logic circuits offer a significant advantage over simple electromechanical controls.
However, if the system to be controlled is less well defined or is subject to frequent changes, a more generalized control is required that can easily be adapted to variations in the events, conditions, and control actions that will be applied to operating the system. In this case, a microprocessor-based control offers the advantage of being reprogrammable to provide different responses to different events and conditions. Unfortunately, the task of reprogramming is not easily accomplished by the typical person, since it generally requires the skills of a person who can program in assembly language. Even if a personal computer is used as a control device, the interface used to define the control scheme typically employs a high level language such as BASIC, with which only a small percentage of potential users is proficient. Furthermore, errors in the logic employed in setting up the control can creep in and remain undetected, with potentially harmful results.
The use of computers for controlling systems is well known, but in most cases, the control programs employed are not adapted to handle changing environments. There are numerous instances wherein a personal computer control would be very welcome, if provided with an interface that people without specialized programming skills could use. For example, personal computers have been used for controlling appliances, lighting, and security in residences. Since the required configuration and control requirement of a full home control can easily change with time, for example, as new appliances and circuits are added or existing elements are changed, it would be convenient if the user could readily adapt the control scheme to handle such changes without reprogramming the computer.
Computer controls are not limited to applications such as total home control. They can also be used in connection with hobbies, such as controlling toy vehicles running on a track. Many people invest considerable time and money in building and operating model train layouts. These layouts are often complex, including many separate track sections on which several trains run. Most often, the various trains running on a layout are manually controlled. Several people may be required to operate a complex system with several trains that are running to avoid collisions or overspeed on curves that can cause the locomotive or cars to leave the track.
People involved in such hobbies enjoy trying to emulate circumstances that can arise in the operation of full-size vehicles. For example, just as actual trains run on schedules and over the same roadway or tracks as other vehicles, hobbyists enjoy scheduling and controlling the operation of the scale-size replicas of these vehicles. Computer control of the toy vehicles provides an expedient method to schedule operation of the toy vehicles, just as it does their full-size counterparts. However, control applications that enable non-programmers to easily define schedules, events, conditions, and control actions in order to accommodate changing control requirements are not presently available.
An effective computer control for toy vehicles running on a track must have some feedback signal that provides information on the results of a control action. The same requirement applies to the control of other types of systems in which devices are controlled. If two model trains at times share the same track layout, the control must be provided with a signal that denotes the location of each train and must use the signal to prevent a collision and possible derailment of the trains.
U.S. Pat. No. 4,349,196 discloses a computer controlled toy track system in which an electro-optical sensing device disposed under the track or roadway senses the passage and identity of individual cars and produces a corresponding signal that is input to a microprocessor-based operator control panel. To identify specific cars, a strip bearing an appropriate bar code is attached underneath the cars, where it can be scanned by the electro-optical sensing devices that are placed at predefined locations in the layout. The control panel employed in this system is not that of a personal computer, but instead, simply includes a keypad, a plurality of light emitting diodes, and a one row alphanumeric display. This system does not readily allow adaptation of the control to changing circumstances and configurations. More importantly, its use requires that an existing system be retrofitted with the electro-optical sensors, which can be somewhat difficult to install and connect to the control panel.
Another aspect involved in the control of toy vehicles running on a track relates to the way in which the speed of the vehicles is controlled. Low voltage alternating current (AC) can be applied to the tracks to provide power for the motors in the vehicles, but most model train engines are powered by direct current (DC) motors. The speed of these motors is typically controlled by varying the voltage and polarity of the DC. Another method involves supplying the motors with a pulse width modulated (PWM) DC signal. The pulse width of this signal is adjusted to achieve a desired speed for the train running on a specific track section to which the signal is applied.
To independently control the motors in different locomotives supplied with power through the tracks, two approaches have been used. As disclosed in U.S. Pat. No. 4,341,982, a plurality of actuators generate a plurality of variably modulated selected frequencies that are superimposed on the DC power signal applied to the track. Receivers in the locomotives of each different train running on the layout are each tuned to a different selected modulated frequency. The variable modulation signal is used by the receiver tuned to it to determine the motor speed of the locomotive in which the receiver is disposed.
Another approach uses pulse position modulation to control the motor on a specific engine. However, the circuitry required for this method is relative expensive. Both of these prior art techniques for controlling specific engines on a track layout require that each engine be modified to carry the circuitry needed to discriminate between the signals supplied on the track in order to respond only to an intended speed control signal. It would clearly be preferable to avoid modifying the engines in this manner and to simply directly couple the locomotive motor to the DC power provided through the track on which the locomotive is running.